import java.util.Arrays;

/**
 * Created with IntelliJ IDEA
 * Description:消失的数字
 * User:恋恋
 * Date:2022-09-29
 * Time:20:56
 */
public class TestDemo {
    //第一种：
    public static int function(int[] arr){
        int var=0;
        for (int i = 0; i <= arr.length; i++) {
            var^=i;
        }
        int ver=arr[0];
        for (int i = 0; i < arr.length; i++) {
            ver^=i;
        }
        return var^ver;
    }
    //第二种：第一种的升级版本
    public static int function2(int[] arr){
        int var=arr.length;//异或的原理就是找不同，缺的哪一个就是异或后的结果
        for (int i = 0; i < arr.length ; i++) {
            var^=arr[i];
            var^=i;
        }
        return var;
    }
    //除了异或的方法还有利用数组下标的方法
    public static void function3(int[] arr){
        int[] str=new int[arr.length+1];
        Arrays.fill(str,-1);//让元素中的每个元素全部等于-1
        for (int i=0 ; i< arr.length;i++){
            str[arr[i]]=1;
        }
        for (int i = 0; i < str.length; i++) {
            if(str[i]==-1){
                System.out.println(i);
                break;
            }
        }
    }
    public static void main(String[] args) {
        //[1,3,0]
        //2
        int[] arr=new int[]{1,3,0};
        System.out.println(function2(arr));
        function3(arr);

    }
}
